/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.far.aus.adm.clas;

import com.far.lib.BaseDatos;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Jorge
 */
public class Auspicio extends BaseDatos{
    public Auspicio(String m, int p, String db, String u, String c){
        super(m, p, db, u, c);
    }

    public String getSecNumAuspicio(int anio)
    {
        String sec = "001";
        try{
            ResultSet rs = this.consulta("select count(num_auspicio) from tbl_auspicio where num_auspicio like '"+anio+"%'");
            if(rs.next()){
                int num = rs.getString(1)!=null ? rs.getInt(1) : 0;
                num++;
                if(num<10){
                    sec = "00" + num;
                }else if(num<100){
                        sec = "0" + num;
                }
                rs.close();
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        return anio + "-" +sec;
    }
    
    public ResultSet getAuspicio(String num_auspicio)
    {
        return this.consulta("select * from vta_auspicio with (nolock) where num_auspicio='"+num_auspicio+"'");
    }
     
    public ResultSet getPlanActividades(String num_auspicio)
    {
        return this.consulta("select * from vta_auspicio_actividad with (nolock) where num_auspicio='"+num_auspicio+"'");
    }
    
    public boolean insertar(String num_auspicio, String usuario_creacion, String id_tipo_plan, String ruc, String proveedor, String tipo_documento, String cedula, 
            String contacto, String correo, String subtotal, String iva, String total, String son, String dias_para_vencimiento, String observacion, String correo_add, String adjunto, 
            String plan_actividad, String fecha_desde, String fecha_hasta, String graba_iva, String asubtotal, String aiva, String atotal, String id_tipo_forma_pago, String tipo_confirmacion)
    {
        List sql = new ArrayList();
        sql.add("insert into tbl_auspicio(num_auspicio, usuario_creacion, fecha_creacion, id_tipo_plan, ruc, proveedor, tipo_documento, cedula, "
                + "contacto, correo, subtotal, iva, total, son, dias_para_vencimiento, observacion, correo_add, adjunto, tipo_confirmacion) "
                + "values('"+num_auspicio+"', '"+usuario_creacion+"', getDate(), '"+id_tipo_plan+"', '"+ruc+"', '"+proveedor+"', '"+tipo_documento+"', '"+cedula+"', '"+contacto+
                "', '"+correo+"', "+subtotal+", "+iva+", "+total+", '"+son+"', "+dias_para_vencimiento+", '"+observacion+"', '"+correo_add+"', '"+adjunto+"', '"+tipo_confirmacion+"');");
        
        String vec_plan_actividad[] = plan_actividad.split("&;");
        String vec_fecha_desde[] = fecha_desde.split("&;");
        String vec_fecha_hasta[] = fecha_hasta.split("&;");
        String vec_graba_iva[] = graba_iva.split("&;");
        String vec_subtotal[] = asubtotal.split("&;");
        String vec_iva[] = aiva.split("&;");
        String vec_total[] = atotal.split("&;");
        String vec_id_tipo_forma_pago[] = id_tipo_forma_pago.split("&;");
        for(int i=0; i<vec_plan_actividad.length; i++){
           sql.add("insert into tbl_auspicio_actividad(num_auspicio, plan_actividad, fecha_desde, fecha_hasta, graba_iva, subtotal, iva, total, id_tipo_forma_pago) values("
                   + "'"+num_auspicio+"', '"+vec_plan_actividad[i]+"', '"+vec_fecha_desde[i]+"', '"+vec_fecha_hasta[i]+"', '"+vec_graba_iva[i]+"', "+vec_subtotal[i]+
                   ", "+vec_iva[i]+", "+vec_total[i]+", "+vec_id_tipo_forma_pago[i]+");"); 
        }
        return this.transacciones(sql);
    }
    
    public boolean actualizar(String num_auspicio, String usuario_creacion, String id_tipo_plan, String ruc, String proveedor, String tipo_documento, String cedula, 
            String contacto, String correo, String subtotal, String iva, String total, String son, String dias_para_vencimiento, String observacion, String correo_add, String adjunto, 
            String plan_actividad, String fecha_desde, String fecha_hasta, String graba_iva, String asubtotal, String aiva, String atotal, String id_tipo_forma_pago, String tipo_confirmacion)
    {
        List sql = new ArrayList();
        sql.add("update tbl_auspicio set usuario_creacion='"+usuario_creacion+"', id_tipo_plan='"+id_tipo_plan+"', ruc='"+ruc+"', proveedor='"+proveedor+
                "', tipo_documento='"+tipo_documento+"', cedula='"+cedula+"', contacto='"+contacto+"', correo='"+correo+"', subtotal="+subtotal+", iva="+iva+
                ", total="+total+", son='"+son+"', dias_para_vencimiento="+dias_para_vencimiento+", observacion='"+observacion+"', correo_add='"+correo_add+
                "', adjunto='"+adjunto+"', tipo_confirmacion='"+tipo_confirmacion+"' where num_auspicio='"+num_auspicio+"';");
        
        String vec_plan_actividad[] = plan_actividad.split("&;");
        String vec_fecha_desde[] = fecha_desde.split("&;");
        String vec_fecha_hasta[] = fecha_hasta.split("&;");
        String vec_graba_iva[] = graba_iva.split("&;");
        String vec_subtotal[] = asubtotal.split("&;");
        String vec_iva[] = aiva.split("&;");
        String vec_total[] = atotal.split("&;");
        String vec_id_tipo_forma_pago[] = id_tipo_forma_pago.split("&;");
        sql.add("delete from tbl_auspicio_actividad where num_auspicio='"+num_auspicio+"';");
        for(int i=0; i<vec_plan_actividad.length; i++){
           sql.add("insert into tbl_auspicio_actividad(num_auspicio, plan_actividad, fecha_desde, fecha_hasta, graba_iva, subtotal, iva, total, id_tipo_forma_pago) values("
                   + "'"+num_auspicio+"', '"+vec_plan_actividad[i]+"', '"+vec_fecha_desde[i]+"', '"+vec_fecha_hasta[i]+"', '"+vec_graba_iva[i]+"', "+vec_subtotal[i]+
                   ", "+vec_iva[i]+", "+vec_total[i]+", "+vec_id_tipo_forma_pago[i]+");"); 
        }
        return this.transacciones(sql);
    }
    
    public boolean confirmar(String num_auspicio, String tipo_confirmacion, String usuario)
    {
        return this.ejecutar("update tbl_auspicio set tipo_confirmacion='"+tipo_confirmacion+"', usuario_confirmacion='"+usuario+"', fecha_confirmacion=getDate(), confirmacion=1, estado='3' where num_auspicio='"+num_auspicio+"'");
    }
    
    public boolean anular_confirmar(String num_auspicio)
    {
        return this.ejecutar("update tbl_auspicio set tipo_confirmacion=null, usuario_confirmacion=null, fecha_confirmacion=null, confirmacion=null, estado='1' where num_auspicio='"+num_auspicio+"'");
    }
    
    public boolean anular(String num_auspicio, String usuario)
    {
        return this.ejecutar("update tbl_auspicio set estado=2, usuario_anulacion='"+usuario+"', fecha_anulacion=getDate() where num_auspicio='"+num_auspicio+"';");
    }
            
}
